package com.eian.boot.security.utils;

import cn.dev33.satoken.secure.SaSecureUtil;

/**
 * 密码工具类
 */
public class PwdKit {

    private PwdKit() {
    }

    /**
     * 加密密码
     *
     * @param pwd 密码明文
     * @return 密码密文
     */
    public static String encrypt(String pwd) {
        return SaSecureUtil.sha256(pwd);
    }

    /**
     * 验证密码
     *
     * @param pwd        密码明文
     * @param encryptPwd 密码密文
     * @return 验证结果
     */
    public static boolean match(String pwd, String encryptPwd) {
        return SaSecureUtil.sha256(pwd).equals(encryptPwd);
    }

    /**
     * 加密密码（AES对称加密）
     *
     * @param key AES key
     * @param pwd 密码明文
     * @return 密码密文
     */
    public static String encryptByAes(String key, String pwd) {
        return SaSecureUtil.aesEncrypt(key, pwd);
    }

    /**
     * 验证密码
     *
     * @param key        AES key
     * @param pwd        密码明文
     * @param encryptPwd 密码密文
     * @return 验证结果
     */
    public static boolean match(String key, String pwd, String encryptPwd) {
        return SaSecureUtil.aesDecrypt(key, pwd).equals(encryptPwd);
    }
}
